home *** CD-ROM | disk | FTP | other *** search
File List | 1992-03-07 | 22.9 KB | 603 lines |
- NYU Ada/ED-C 1.7.3 Amiga OS 1.3 Sat 7 Mar 1992 11:17:10 PAGE 1
-
-
- 1: -------------------------------------------------------------------------------
- 2: -- --
- 3: -- "DHRYSTONE" Benchmark Program --
- 4: -- -------------------------------- --
- 5: -- --
- 6: -- Version: ADA/1 --
- 7: -- --
- 8: -- Date: 04/15/84 --
- 9: -- --
- 10: -- Author: Reinhold P. Weicker --
- 11: -- --
- 12: -- Filename: DHRYADAA.DEC --
- 13: -- --
- 14: -- History: --
- 15: -- --
- 16: -- CHANGE MADE BY WHOM DATE --
- 17: -- ----------- --------- ------- --
- 18: -- --
- 19: -- added timing calls D. Sayon 13 Feb 85 --
- 20: -- to write to file --
- 21: -- --
- 22: -------------------------------------------------------------------------------
- 23: -- --
- 24: -- The following program contains statements of a high-level programming --
- 25: -- language (Ada) in a distribution considered representative: --
- 26: -- --
- 27: -- assignments 53% --
- 28: -- control statements 32% --
- 29: -- procedure, function calls 15% --
- 30:
- 31: -- --
- 32: -- 100 statements are dynamically executed. The program is balanced with --
- 33: -- respect to the three aspects: --
- 34: -- --
- 35: -- -statement type --
- 36: -- -operand type (for simple data types) --
- 37: -- -operand access --
- 38: -- operand global, local, parameter, or constant. --
- 39: -- --
- 40: -- The combination of these three aspects is balanced only approximately. --
- 41: -- --
- 42: -- The program does not compute anything meaningful, but it is syntacially --
- 43: -- and semantically correct. All variables have a value assigned to them --
- 44: -- before they are used as a source operand. --
- 45: -------------------------------------------------------------------------------
- 46: package Global_Def is
- 47: ------------------
- 48: -- Global type definitions
- 49:
- 50: type Enumeration is (Ident_1,Ident_2,Ident_3,Ident_4,Ident_5);
- 51:
- NYU Ada/ED-C 1.7.3 Amiga OS 1.3 Sat 7 Mar 1992 11:17:10 PAGE 2
-
- 52: subtype One_To_Thirty is integer range 1..30;
- 53: subtype One_To_Fifty is integer range 1..50;
- 54: subtype Capital_Letter is character range 'A'..'Z';
- 55:
- 56: type String_30 is array(One_To_Thirty)of character;
- 57: pragma Pack(String_30);
- <------------>
- * WARNING: Pragma PACK is ignored
-
- 58:
- 59: type Array_1_Dim_Integer is array(One_To_Fifty)of integer;
- 60: type Array_2_Dim_Integer is array(One_To_Fifty,
- 61: One_To_Fifty)of integer;
- 62:
- 63: type Record_Type(Discr:Enumeration := Ident_1);
- 64:
- 65: type Record_Pointer is access Record_Type;
- 66:
- 67: type Record_Type(Discr:Enumeration := Ident_1)is
- 68: record
- 69: Pointer_Comp: Record_Pointer;
- 70: case Discr is
- 71: when Ident_1 => -- only this variant is used,
- 72: -- but in some cases discriminant
- 73: -- checks are necessary
- 74:
- 75: Enum_Comp: Enumeration;
- 76: Int_Comp: One_To_Fifty;
- 77: String_Comp: String_30;
- 78: when Ident_2 =>
- 79: Enum_Comp_2: Enumeration;
- 80: String_Comp_2: String_30;
- 81: when others =>
- 82: Char_Comp_1,
- 83: Char_Comp_2: character;
- 84: end case;
- 85: end record;
- 86:
- 87: end Global_Def;
- 88:
- 89: with Global_Def,Calendar;
- 90: use Global_Def,Calendar;
- 91:
- 92: package Pack_1 is
- 93: -------------
- 94:
- 95: procedure Proc_0(cycles: in integer; start_time, stop_time: out Float);
- 96: procedure Proc_1(Pointer_Par_in: in Record_Pointer);
- 97: procedure Proc_2(Int_Par_In_Out: in out One_To_Fifty);
- 98: procedure Proc_3(Pointer_Par_Out: out Record_Pointer);
- 99:
- 100: Int_Glob: integer;
- 101:
- 102: end Pack_1;
- NYU Ada/ED-C 1.7.3 Amiga OS 1.3 Sat 7 Mar 1992 11:17:10 PAGE 3
-
- 103:
- 104: with Global_Def;
- 105: use Global_Def;
- 106:
- 107: package Pack_2 is
- 108: --------------
- 109:
- 110: procedure Proc_6 (Enum_Par_In: in Enumeration;
- 111: Enum_Par_Out: out Enumeration);
- 112: procedure Proc_7 (Int_Par_In_1,
- 113: Int_Par_In_2: in One_To_Fifty;
- 114: Int_Par_Out: out One_To_Fifty);
- 115: procedure Proc_8 (Array_Par_In_Out_1: in out Array_1_Dim_Integer;
- 116: Array_Par_In_Out_2: in out Array_2_Dim_Integer;
- 117: Int_Par_In_1,
- 118: Int_Par_In_2: in integer);
- 119: function Func_1 (Char_Par_In_1,
- 120: Char_Par_In_2: in Capital_Letter)
- 121: return Enumeration;
- 122: function Func_2 (String_Par_In_1,
- 123: String_Par_In_2: in String_30)
- 124: return boolean;
- 125:
- 126: end Pack_2;
- 127:
- 128: with Global_Def,Pack_1,Text_IO, Help_Tools;
- 129: use Global_Def, Text_IO, Help_Tools;
- 130:
- 131: procedure Dhryadaa is
- 132: --------------
- 133:
- 134: package real_io is new float_io(float);
- 135: use real_io;
- 136:
- 137: package int_io is new integer_io(integer);
- 138: use int_io;
- 139:
- 140: filename: string (1..13);
- 141:
- 142: int_rating,
- 143: No_of_Cycles,
- 144: No_of_Runs : integer;
- 145:
- 146: mean_rating,
- 147: rating,
- 148: mean_time,
- 149: elapsed_time,
- 150: start_time,
- 151: stop_time: float;
- 152:
- 153: data_file: file_type;
- 154:
- 155: begin
- 156:
- NYU Ada/ED-C 1.7.3 Amiga OS 1.3 Sat 7 Mar 1992 11:17:10 PAGE 4
-
- 157: mean_time := 0.0;
- 158: mean_rating := 0.0;
- 159: No_of_Runs := 5;
- 160:
- 161: time_filename (filename);
- 162: filename(1) := 'D';
- 163: create (data_file,out_file,filename,"");
- 164:
- 165: read_environ(data_file);
- 166:
- 167: put("ADA Dhrystone Benchmark (DHRYADAA.DEC)"); new_line;
- 168: put(data_file,"ADA Dhrystone Benchmark (DHRYADAA.DEC)");new_line(data_file);
- 169:
- 170: for N in 1..No_of_Runs loop
- 171:
- 172: No_of_Cycles := N*100;
- 173:
- 174: Pack_1.Proc_0(No_of_Cycles,start_time,stop_time);
- 175: -- Proc_0 is actually the main program, but it is part
- 176: -- of a package, and a program within a package can
- 177: -- not be designated as the Dhryadaa program for execution.
- 178: -- Therefore Proc_0 is activated by a call from "Dhryadaa".
- 179:
- 180: --
- 181: -- WRITE OUT TIMING RESULTS
- 182: --
- 183: --
- 184: -- write out start time
- 185: --
- 186:
- 187: new_line; put (" Dhrystone start time: ");put (start_time, 5, 2, 0);
- 188: put (" seconds"); new_line;
- 189: new_line(data_file); put (data_file," Dhrystone start time: ");
- 190: put (data_file,start_time, 5, 2, 0);
- 191: put (data_file," seconds"); new_line(data_file);
- 192:
- 193: --
- 194: -- write out stop time
- 195: --
- 196:
- 197: put (" Dhrystone stop time: ");put (stop_time, 5, 2, 0);
- 198: put (" seconds");new_line;
- 199: put (data_file," Dhrystone stop time: ");
- 200: put (data_file,stop_time, 5, 2, 0);
- 201: put (data_file," seconds");
- 202: new_line(data_file);
- 203:
- 204: --
- 205: -- write out elapsed time
- 206: --
- 207:
- 208: elapsed_time := stop_time - start_time;
- 209: put (" Elapsed time for ");put (no_of_cycles, 3);
- 210: put (" cycles: ");put(elapsed_time, 5,2,0); put(" seconds ");
- NYU Ada/ED-C 1.7.3 Amiga OS 1.3 Sat 7 Mar 1992 11:17:10 PAGE 5
-
- 211: new_line;
- 212: put (data_file," Elapsed time for ");
- 213: put (data_file,no_of_cycles, 3);
- 214: put (data_file," cycles: ");put(data_file,elapsed_time, 5,2,0);
- 215: put (data_file," seconds ");
- 216: new_line(data_file);
- 217:
- 218: --
- 219: -- Sum the time in millisecs per cycle
- 220: --
- 221:
- 222: mean_time := mean_time + (elapsed_time*1000.0)/float(no_of_cycles);
- 223:
- 224: --
- 225: -- Compute the Dhrystone rating based on the time for the number
- 226: -- of cycles just executed and write
- 227: --
- 228: -- RATING = (100 statements/cycle * number of cycles)/elapsed time
- 229: --
- 230:
- 231: rating := (100.0*FLOAT(NO_OF_CYCLES))/ELAPSED_TIME;
- 232:
- 233: --
- 234: -- Sum Dhrystone rating
- 235: --
- 236:
- 237: mean_rating := mean_rating + rating;
- 238: int_rating := integer(rating);
- 239: put (" Dhrystone rating: "); put(int_rating);
- 240: put (" statement execution per unit time "); new_line;
- 241: put(data_file," Dhrystone rating: ");
- 242: put(data_file, int_rating);
- 243: put(data_file," statement execution per unit time ");
- 244: new_line(data_file);
- 245:
- 246: end loop;
- 247:
- 248: --
- 249: -- Calculate the average time in millisecs per cycle
- 250: --
- 251:
- 252: mean_time := mean_time/float(no_of_runs);
- 253: new_line; put (" Average time per cycle: "); put (mean_time,5,2,0);
- 254: put_line (" millisecs ");
- 255: new_line (data_file);
- 256: put (data_file," Average time per cycle: "); put (data_file,mean_time,5,2,0);
- 257: put (data_file," millisecs ");
- 258:
- 259: --
- 260: -- Calculate the average Dhrystone ratings
- 261: --
- 262:
- 263: mean_rating := mean_rating/float(no_of_runs);
- 264: int_rating := integer(mean_rating);
- NYU Ada/ED-C 1.7.3 Amiga OS 1.3 Sat 7 Mar 1992 11:17:10 PAGE 6
-
- 265:
- 266: new_line; put(" Average Dhrystone rating: ");
- 267: put (int_rating); put (" statement execution per unit time ");
- 268: new_line(data_file); put (data_file," Average Dhrystone rating: ");
- 269: put (data_file,int_rating);
- 270: put (data_file," statement execution per unit time ");
- 271:
- 272: close (data_file);
- 273:
- 274: end Dhryadaa;
- 275:
- 276: with Global_Def,Calendar,Pack_2;
- 277: use Global_Def,Calendar;
- 278:
- 279: package body Pack_1 is
- 280: -----------
- 281:
- 282: Bool_Glob: boolean;
- 283: Char_Glob_1,
- 284: Char_Glob_2: character;
- 285: Array_Glob_1: Array_1_Dim_Integer;
- 286: Array_Glob_2: Array_2_Dim_Integer;
- 287: Pointer_Glob,
- 288: Pointer_Glob_Next: Record_Pointer;
- 289:
- 290: procedure Proc_4;
- 291: procedure Proc_5;
- 292:
- 293: procedure Proc_0 (cycles: in integer;start_time,stop_time: out float)
- 294: is
- 295: Int_Loc_1,
- 296: Int_Loc_2,
- 297: Int_Loc_3: One_To_Fifty;
- 298: Char_Loc: character;
- 299: Enum_Loc: Enumeration;
- 300: String_Loc_1,
- 301: String_Loc_2: String_30;
- 302:
- 303:
- 304: begin
- 305: -- Initializations
- 306:
- 307: Pack_1.Pointer_Glob_Next := new Record_Type;
- 308: Pack_1.Pointer_Glob := new Record_Type
- 309: '(
- 310: Pointer_Comp =>Pack_1.Pointer_Glob_Next,
- 311: Discr =>Ident_1,
- 312: Enum_Comp =>Ident_3,
- 313: Int_Comp =>40,
- 314: String_Comp =>"DHRYSTONE PROGRAM, SOME STRING"
- 315: );
- 316: String_Loc_1 := "DHRYSTONE PROGRAM, 1'ST STRING";
- 317: -----------------
- 318:
- NYU Ada/ED-C 1.7.3 Amiga OS 1.3 Sat 7 Mar 1992 11:17:10 PAGE 7
-
- 319: -- Start timer --
- 320:
- 321: Start_Time := float (seconds (clock));
- 322: -----------------
- 323: for N in 1..cycles loop
- 324: Proc_5;
- 325: Proc_4;
- 326: -- Char_Glob_1 = 'A',Char_Glob_2 = 'B',Bool_Glob = false
- 327: Int_Loc_1 := 2;
- 328: Int_Loc_2 := 3;
- 329: String_Loc_2 := "DHRYSTONE PROGRAM, 2'ND STRING";
- 330: Enum_Loc := Ident_2;
- 331: Bool_Glob := not Pack_2.Func_2(String_Loc_1,String_Loc_2);
- 332: -- Bool_Glob = true
- 333: while Int_Loc_1 < Int_Loc_2 loop --loop body executed once
- 334: Int_Loc_3 := 5 * Int_Loc_1 - Int_Loc_2;
- 335: -- Int_Loc_3 = 7
- 336: Pack_2.Proc_7 (Int_Loc_1,Int_Loc_2,Int_Loc_3);
- 337: -- Int_Loc_3 = 7
- 338: Int_Loc_1 := Int_Loc_1 + 1;
- 339: end loop;
- 340: -- Int_Loc_1 = 3
- 341: Pack_2.Proc_8(Array_Glob_1,Array_Glob_2,Int_Loc_1,Int_Loc_3);
- 342: -- Int_Glob = 5
- 343: Proc_1 (Pointer_Glob);
- 344: for Char_Index in 'A'..Char_Glob_2 loop --loop body executed twice
- 345: if Enum_Loc=Pack_2.Func_1(Char_Index,'C')
- 346: then--not executed
- 347: Pack_2.Proc_6(Ident_1,Enum_Loc);
- 348: end if;
- 349: end loop;
- 350: -- Enum_Loc = Ident_1
- 351: -- Int_Loc_1 = 3,Int_Loc_2 = 3,Int_Loc_3 = 7
- 352: Int_Loc_3 := Int_Loc_2 * Int_Loc_1;
- 353: Int_Loc_2 := Int_Loc_3 / Int_Loc_1;
- 354: Int_Loc_2 := 7 * (Int_Loc_3 - Int_Loc_2) - Int_Loc_1;
- 355: Proc_2(Int_Loc_1);
- 356:
- 357: end loop;
- 358: -----------------
- 359:
- 360: -- Stop timer --
- 361:
- 362: Stop_Time := float (seconds(clock));
- 363: -----------------
- 364:
- 365: end Proc_0;
- 366:
- 367: procedure Proc_1 (Pointer_Par_In: in Record_Pointer)
- 368: is--executed once
- 369: Next_Record: Record_Type
- 370: renames Pointer_Par_In.Pointer_Comp.all;--=Pointer_Glob_Next.all
- 371: begin
- 372: Next_Record := Pointer_Glob.all;
- NYU Ada/ED-C 1.7.3 Amiga OS 1.3 Sat 7 Mar 1992 11:17:10 PAGE 8
-
- 373: Pointer_Par_In.Int_Comp := 5;
- 374: Next_Record.Int_Comp := Pointer_Par_In.Int_Comp;
- 375: Next_Record.Pointer_Comp := Pointer_Par_In.Pointer_Comp;
- 376: Proc_3 (Next_Record.Pointer_Comp);
- 377: -- Next_Record.Pointer_Comp = Pointer_Glob.Pointer_Comp = Pointer_Glob_Next
- 378: if Next_Record.Discr = Ident_1
- 379: then -- executed
- 380: Next_Record.Int_Comp := 6;
- 381: Pack_2.Proc_6(Pointer_Par_In.Enum_Comp,Next_Record.Enum_Comp);
- 382: Next_Record.Pointer_Comp := Pointer_Glob.Pointer_Comp;
- 383: Pack_2.Proc_7(Next_Record.Int_Comp, 10, Next_Record.Int_Comp);
- 384: else -- not executed
- 385: Pointer_Par_In.all := Next_Record;
- 386: end if;
- 387: end Proc_1;
- 388:
- 389: procedure Proc_2 (Int_Par_In_Out:in out One_To_Fifty)
- 390: is -- executed once
- 391: -- In_Par_In_Out = 3,becomes 7
- 392: Int_Loc: One_To_Fifty;
- 393: Enum_Loc: Enumeration;
- 394: begin
- 395: Int_Loc := Int_Par_In_Out + 10;
- 396: loop -- executed once
- 397: if Char_Glob_1 = 'A'
- 398: then -- executed
- 399: Int_Loc := Int_Loc - 1;
- 400: Int_Par_In_Out := Int_Loc - Int_Glob;
- 401: Enum_Loc := Ident_1;
- 402: end if;
- 403: exit when Enum_Loc = Ident_1; -- true
- 404: end loop;
- 405: end Proc_2;
- 406:
- 407: procedure Proc_3 (Pointer_Par_Out: out Record_Pointer)
- 408: is -- executed once
- 409: -- Pointer_Par_Out becomes Pointer_Glob
- 410: begin
- 411: if Pointer_Glob /= null
- 412: then -- executed
- 413: Pointer_Par_Out := Pointer_Glob.Pointer_Comp;
- 414: else -- not executed
- 415: Int_Glob := 100;
- 416: end if;
- 417: Pack_2.Proc_7(10,Int_Glob,Pointer_Glob.Int_Comp);
- 418: end Proc_3;
- 419:
- 420: procedure Proc_4 -- without parameters
- 421: is -- executed once
- 422: Bool_Loc: boolean;
- 423: begin
- 424: Bool_Loc := Char_Glob_1 = 'A';
- 425: Bool_Loc := Bool_Loc or Bool_Glob;
- 426: Char_Glob_2 := 'B';
- NYU Ada/ED-C 1.7.3 Amiga OS 1.3 Sat 7 Mar 1992 11:17:10 PAGE 9
-
- 427: end Proc_4;
- 428:
- 429: procedure Proc_5 -- without parameters
- 430: is--executed once
- 431: begin
- 432: Char_Glob_1 := 'A';
- 433: Bool_Glob := false;
- 434: end Proc_5;
- 435:
- 436: end Pack_1;
- 437:
- 438: with Global_Def,Pack_1;
- 439: use Global_Def;
- 440:
- 441: package body Pack_2 is
- 442: -------------------
- 443: function Func_3(Enum_Par_In: in Enumeration)return boolean;
- 444: -- forward declaration
- 445:
- 446: procedure Proc_6(Enum_Par_In: in Enumeration;
- 447: Enum_Par_Out: out Enumeration)
- 448: is -- executed once
- 449: -- Enum_Par_In = Ident_3,Enum_Par_Out becomes Ident_2
- 450: begin
- 451: Enum_Par_Out := Enum_Par_In;
- 452: if not Func_3(Enum_Par_In)
- 453: then -- not executed
- 454: Enum_Par_Out := Ident_4;
- 455: end if;
- 456: case Enum_Par_In is
- 457: when Ident_1 => Enum_Par_Out := Ident_1;
- 458: when Ident_2 => if Pack_1.Int_Glob > 100
- 459: then Enum_Par_Out := Ident_1;
- 460: else Enum_Par_Out := Ident_4;
- 461: end if;
- 462: when Ident_3 => Enum_Par_Out := Ident_2; -- executed
- 463: when Ident_4 => null;
- 464: when Ident_5 => Enum_Par_Out := Ident_3;
- 465: end case;
- 466: end Proc_6;
- 467: procedure Proc_7(Int_Par_In_1,
- 468: Int_Par_In_2: in One_To_Fifty;
- 469: Int_Par_Out: out One_To_Fifty)
- 470: is -- executed three times
- 471: -- first call: Int_Par_In_1 = 2,Int_Par_In_2 = 3,
- 472: -- Int_Par_Out becomes 7
- 473: -- second call: Int_Par_In_1 = 6,Int_Par_In_2 = 10,
- 474: -- Int_Par_Out becomes 18
- 475: -- third call: Int_Par_In_1 = 10,Int_par_In_2 = 5,
- 476: -- Int_Par_Out becomes 17
- 477: Int_Loc: One_To_Fifty;
- 478: begin
- 479: Int_Loc := Int_Par_In_1 + 2;
- 480: Int_Par_Out := Int_Par_In_2 + Int_Loc;
- NYU Ada/ED-C 1.7.3 Amiga OS 1.3 Sat 7 Mar 1992 11:17:10 PAGE 10
-
- 481: end Proc_7;
- 482: procedure Proc_8 (Array_Par_In_Out_1:in out Array_1_Dim_Integer;
- 483: Array_Par_In_Out_2:in out Array_2_Dim_Integer;
- 484: Int_Par_In_1,
- 485: Int_Par_In_2: in integer)
- 486: is -- executed once
- 487: -- Int_Par_In_1 = 3
- 488: -- Int_Par_In_2 = 7
- 489: Int_Loc:One_To_Fifty;
- 490: begin
- 491: Int_Loc := Int_par_In_1 + 5;
- 492: Array_Par_In_Out_1(Int_Loc) := Int_Par_In_2;
- 493: Array_Par_In_Out_1(Int_Loc+1) :=
- 494: Array_Par_In_Out_1 (Int_Loc);
- 495: Array_Par_In_Out_1(Int_Loc+30) := Int_Loc;
- 496: for Int_Index in Int_Loc .. Int_Loc+1 loop -- loop body executed twice
- 497: Array_Par_In_Out_2(Int_Loc,Int_Index) := Int_Loc;
- 498: end loop;
- 499: Array_Par_In_Out_2(Int_Loc,Int_Loc-1) :=
- 500: Array_Par_In_Out_2(Int_Loc,Int_Loc-1)+1;
- 501: Array_Par_In_Out_2(Int_Loc+20,Int_Loc) :=
- 502: Array_Par_In_Out_1(Int_Loc);
- 503: Pack_1.Int_Glob := 5;
- 504: end Proc_8;
- 505: function Func_1(Char_Par_In_1,
- 506: Char_Par_In_2:in Capital_Letter)
- 507: return Enumeration
- 508: is -- executed three times, returns Ident_1 each time
- 509: -- first call: Char_Par_In_1 = 'H', Char_Par_In_2 = 'R'
- 510: -- second call: Char_Par_In_1 = 'A', Char_Par_In_2 = 'C'
- 511: -- third call: Char_Par_In_1 = 'B', Char_Par_In_2 = 'C'
- 512: Char_Loc_1,Char_Loc_2:Capital_Letter;
- 513: begin
- 514: Char_Loc_1 := Char_Par_In_1;
- 515: Char_Loc_2 := Char_Loc_1;
- 516: if Char_Loc_2 /= Char_Par_In_2
- 517: then-- executed
- 518: return Ident_1;
- 519: else-- not executed
- 520: return Ident_2;
- 521: end if;
- 522: end Func_1;
- 523: function Func_2(String_Par_In_1,
- 524: String_Par_In_2:in String_30)return boolean
- 525: is -- executed once, returns false
- 526: -- String_Par_In_1 = "DHRYSTONE, 1'ST STRING"
- 527: -- String_Par_In_2 = "DHRYSTONE, 2'ND STRING"
- 528: Int_Loc: One_To_Thirty;
- 529: Char_Loc: Capital_Letter;
- 530: begin
- 531: Int_Loc := 2;
- 532: while Int_Loc<=2 Loop -- loop body executed once
- 533: if Func_1(String_Par_In_1(Int_Loc),
- 534: String_Par_In_2(Int_Loc+1)) = Ident_1
- NYU Ada/ED-C 1.7.3 Amiga OS 1.3 Sat 7 Mar 1992 11:17:10 PAGE 11
-
- 535: then-- executed
- 536: Char_Loc := 'A';
- 537: Int_Loc := Int_Loc + 1;
- 538: end if;
- 539: end loop;
- 540: if Char_Loc >= 'W' and Char_Loc < 'Z'
- 541: then-- not executed
- 542: Int_Loc := 7;
- 543: end if;
- 544: if Char_Loc = 'X'
- 545: then-- not executed
- 546: return true;
- 547: else -- executed
- 548: if String_Par_In_1 > String_Par_In_2
- 549: then -- not executed
- 550: Int_Loc := Int_Loc + 7;
- 551: return true;
- 552: else -- executed
- 553: return false;
- 554: end if;
- 555: end if;
- 556: end Func_2;
- 557:
- 558: function Func_3(Enum_Par_In: in Enumeration)return boolean
- 559: is -- executed once, returns true
- 560: -- Enum_Par_In = Ident_3
- 561: Enum_Loc: Enumeration;
- 562: begin
- 563: Enum_Loc := Enum_Par_In;
- 564: if Enum_Loc = Ident_3
- 565: then -- executed
- 566: return true;
- 567: end if;
- 568: end Func_3;
- 569:
- 570: end Pack_2;
- 571:
- 572:
- 573:
-
-
- No errors detected
-